package com.itlong.cloud.enumerate;

import java.util.Objects;

/**
 * <desc>
 *      访客操作类别
 * </desc>
 *
 * @createDate 2019/04/26
 */
public enum VisitorOperateTypeEnum {
    CHECK_REFUSE("业主或物业审批拒绝，发送访客", 0),
    SUBMIT_VISITOR_LIST("访客预约，提交访客单，发送访客和业主，需要业主审核", 1),
    NO_PROPERTY_CHECK("业主审批通过，无需物业审核，发送访客", 2),
    NEED_PROPERTY_CHECK("业主审批通过或业主无需审核，需要物业审核，发送访客", 3),
    PROPERTY_CHECK_PASS("物业审批通过，发送访客和业主", 4),
    ;
    private String description;
    private Integer type;

    /**
     * <desc>
     *      访客操作类别枚举无参构造函数
     * </desc>
     * @param
     * @return
     * @author zhangs
     * @createDate 2017/09/22
     */
    VisitorOperateTypeEnum() {
    }

    /**
     * <desc>
     *      访客操作类别枚举描述与类型构造函数
     * </desc>
     * @param description 描述
     * @param type 类型
     * @return
     * @author zhangs
     * @createDate 2017/09/22
     */
    VisitorOperateTypeEnum(String description, Integer type) {
        this.description = description;
        this.type = type;
    }

    /**
     * <desc>
     *      访客操作类别呼叫枚举描述
     * </desc>
     * @param
     * @return String
     * @author zhangs
     * @createDate 2017/09/22
     */
    public String getDescription() {
        return description;
    }

    /**
     * <desc>
     *      访客操作类别枚举类型
     * </desc>
     * @param
     * @return Integer
     * @author zhangs
     * @createDate 2017/09/22
     */
    public Integer getType() {
        return type;
    }

    /**
     * <desc>
     *      获取枚举的描述
     * </desc>
     * @param type 枚举类型
     * @return 枚举描述
     * @author zhangs
     * @createDate 2017/09/22
     */
    public static String getDescription(Integer type){
        VisitorOperateTypeEnum[] types = VisitorOperateTypeEnum.values();
        for(VisitorOperateTypeEnum limitCategory : types ){
            if(Objects.equals(limitCategory.getType(), type)){
                return limitCategory.getDescription();
            }
        }
        return null;
    }
}
